Г Л А В А 10

Проблемы

Следующие подсказки помогут Вам при работе с сервером LDBF


При запуске сервера,ldbfd не запустился,а в ldbf.log файле появилась следующая запись
ldbfd already running.

Данная ситуация свидетельствует, что или сервер действительно уже запущен,или предыдущая копия сервера некорректно завершилась и оставила за собой неосвобожденные сегменты разделяемой памяти.Также неосвобожденные ресурсы остаются при останнове сервера командой kill -9 xxx.Распределение разделяемой памяти можно посмотреть с помощью команды ipcs (в BSD/OS 2.0.x данной команды не существует, разделяемая память реализована через файлы в каталоге /tmp.Смотрите на файлы типа .shm.XXXXX,.sem.XXXXX).

Идентификаторы разделяемых ресурсов можно посмотреть в файле ldbf.pid в подкаталоге etc.

         2348,345,346,1289
           |    |    |   |
           |    |    |   |----------------> - идентифтикатор семафоров ldbfd.
           |    |    |--------------------> - сегмент разделяемой памяти
           |    |-------------------------> - сегмент разделяемой памяти
           |------------------------------> - номер процесса ldbfd
Уничтожить эти оставшиеся ресурсы можно с помощью команды ipcrm (См. руководство по системе UNIX или manuals).В системе BSD/OS 2.0.x,файлы необходимо просто удалить.


При запуске ldbfmonitor или ldbfdcgi выдается ошибка о невозможности соединится с сервером или невозможности получить доступ к разделяемым ресурсам.

Как правило проблема здесь заключается в правах доступа различных пользователей. При запуске сервера создаются сегменты разделяемой памяти.Права доступа к ним определяются следующим образом:
-если параметр group_allow установлен в 1,права доступа к разделяемым сегментам устанавливаются в 660,т. е. только владелец и члены группы владельца имеют доступ к данным сегментам.
-если group_allow установлен в 0, права устанавливаются в 600,т.е. только владелец имеет доступ к сегментам памяти.

Теперь предположим что сервер LDBF запущен прользователем root, а этот пользователь принадлежит к группе root. Права на сегменты памяти в случае group_allow=1 выглядят:

------ Shared Memory Segments --------
shmid     owner     perms     bytes     nattch    status      
0         root      660       5283      1                     
1         root      660       8400      1                     
Права на сегменты памяти в случае group_allow=0 выглядят:

------ Shared Memory Segments --------
shmid     owner     perms     bytes     nattch    status      
0         root      600       5283      1                     
1         root      600       8400      1                     

Таким образом,для того чтобы ldbfmonitor или ldbfcgi получили доступ к сегментам памяти сервера,они должны быть запущены или только пользователем root в случае group_allow=0, или пользователем root и другим пользователем, входящим в группу root в случае group_allow=1.


При запуске ldbfmonitor,ldbfsetup,ldbfview и других интерактивных программ,рамки выводятся различными символами вместо линий.

По умолчанию,все программы используют псевдографические символы для рисования рамок,линий и т.д.У Вас наваерное установлен шрифт, несовместимый со стандартной таблицей символов(например КОИ-8).Пропишите в стартовые файлы Ваших командных оболочек(shell) переменную LDBFTERM. Вы также можете установить данную переменную сразу на всю систему. Пропишите ее в файлах /etc/profile для оболочки /bin/sh:
LDBFTERM=color-pseudo
export LDBFTERM

и в /etc/cshrc или /etc/login или /etc/csh.login для /bin/csh или /bin/tcsh:
setenv LDBFTERM color-pseudo


Открываются только определенное количество таблиц или при работе стало появляться сообщение об ошибке
-630 - Optimization table flushing failure.

Данная ситуация свидетельствует о существовании лимита на количество открытых файлов для процесса.Необходимо обратится к системному администратору и обратить внимание на команды limit(ulimit)